package com.zzg.datastructure.hashtab;

import java.util.Objects;

/**
 * @Author zhengzg
 * @Date 2022-09-16
 * @Version v1.0
 * 雇员链表
 */
public class EmpLinkedList {

    // 头指针
    private Emp head;

    /**
     * 链表添加信息
     * @param emp 雇员
     */
    public void add(Emp emp) {
        // 如果是添加的第一个雇员
        if (head == null) {
            head = emp;
            return;
        }

        // 如果不是第一个，使用辅助指针将数据放到最后
        Emp temp = head.next;
        while (temp != null) {
            temp = temp.next;
        }

        // 找到并且加入到最后
        temp = emp;
    }

    /**
     * 遍历雇员链表
     * @param no 雇员编号
     */
    public void list(int no) {
        if (Objects.isNull(head)) {
            System.out.println("第"+ (no+1) +"链表为空");
            return;
        }
        System.out.print("第"+ (no+1) +"链表的信息为");
        Emp temp = head;
        while (Objects.nonNull(temp)) {
            System.out.printf("=> id=%d name=%s\t",temp.id,temp.name);
            temp = temp.next;
        }
        System.out.println();
    }

    public Emp findEmpById(int id) {
        // 判断链表是否为null
        if (Objects.isNull(head)) {
            System.out.println("链表为null");
            return null;
        }

        // 创建辅助指针
        Emp temp = head;
        while (Objects.nonNull(temp.next)) {
            if (Objects.equals(id,temp.id)) {
                break;
            }
            temp = temp.next;
        }

        return temp;
    }


}
